
package com.udc.medLine.persistence;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.Restrictions;

import com.udc.medLine.entity.CondicaoVO;
import com.udc.medLine.entity.Cliente;


public class ClienteDAO implements DAO {
	private Cliente cliente;
	Bd banco;
	Criteria busca;
	public ClienteDAO(){
		cliente = new Cliente();
		try{
			banco= Bd.getInstance();
		}   
		catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public Cliente getCliente() {
		return cliente;
		
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
		
	}
	
	public void insert() throws Exception {
		banco.insert(cliente);
	}

		
	public void delete() throws Exception {
		banco.delete(cliente);
	}
	
	public void update() throws Exception {
		banco.update(cliente);
	}
	
	public List search(String hql) throws Exception {
		List lista;
		lista = banco.getList(hql);	
		return lista;
	}
	
	public Cliente retrive() throws Exception {
		return (Cliente) banco.retrieve(cliente, cliente.getId()+"");
	}

	public List searchCriterio(CondicaoVO condicao) throws Exception {
		List lista;
		Criterion criterio;
		Restrictions restricao;
		criterio = Example.create(cliente).enableLike();
		lista =  banco.getCriterio(criterio ,Cliente.class);
		return lista;  
	}
	
}
